Portable self-describing representations of measurements

ABSTRACT

A computer-implemented system and method creates and stores measurement statement objects representing complete statements of measurement. Each measurement statement object represents a measurement, such as “the left wing of the F-16 aircraft has a span of 36 m,” and contains a value object, an aspect object, and an entity object. The value object represents a value of the measurement (such as 36 meters) and the aspect object represents an aspect of the measurement (such as span). The value is a value of the aspect of the measurement. The entity object represents an entity (such as the left wing of an F-16 aircraft) measured by the measurement. The aspect of the measurement is an aspect of the entity measured by the measurement Jvln. Measurement statement objects may be created by parsing text describing measurements. Operations including computations, validation, searching, and reporting may be performed on measurement statement objects.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/700,673, filed Sep. 11, 2017, entitled “Portable Self-DescribingRepresentations Of Measurements,” which is a continuation of U.S. patentapplication Ser. No. 12/348,103, filed Jan. 2, 2009, entitled “PortableSelf-Describing Representations Of Measurements,” which claims thebenefit of and priority to U.S. Provisional Pat. App. Ser. No.61/018,576, filed on Jan. 2, 2008, entitled “User Interface to DataManagement System” and U.S. Provisional Pat. App. Ser. No. 61/046,599,filed on Apr. 21, 2008, entitled “User Interface to Data ManagementSystem,” each of which is hereby incorporated herein by reference in itsentirety.

FIELD

The present invention generally relates to systems and methods ofacquiring and storing data relating to measurements, and moreparticularly to systems and methods of acquiring and storing datarelating to measurements of physical entities.

BACKGROUND

Measurements are critical to the work performed by engineers. In theirdaily work, engineers constantly communicate, validate, and performcomputations on the values of measurements. Engineers spend asignificant portion of their time engaging in such activity.Furthermore, even a small error in a measurement of a product design,such as the span of an aircraft wing, or a value computed from thatmeasurement, can cause serious defects in the product design and haveother negative consequences.

Engineers often communicate measurements to each other by writingdocuments describing those measurements using phrases such as “the leftwing of the F-16 aircraft has a span of 36 m.” Such documents are oftenwritten using conventional word processing software and stored inconventional word processing document formats. Engineers also createdescriptions of measurements in a variety of other computer-readableforms, such as spreadsheets and email messages. The descriptions ofmeasurements contained within such documents, spreadsheets, and emailmessages are often interspersed with other kinds of information, such asnotes from the engineer to himself about how the measurement wasobtained, what the purpose of the measurement is, or whether themeasurement is actual or estimated.

Measurements represented in these and other conventional formatstypically cannot be interpreted and processed by software for purposesof performing searches, reporting, validation or computations on thenumber measurement (e.g., 36 m in the example above), because thesoftware cannot interpret the content of a phrase such as “the left wingof the F-16 aircraft has a span of 36 m,” particularly when such aphrase is interspersed with other, non-measurement-related text, in thesame document. As a result, a memo containing such a phrase is usefulprimarily as a one-time communication from one engineer to another. Tomake further use of the same measurement, such as to perform acalculation involving the span of the F-16 aircraft's left wing, theengineer must re-enter the number “36” into a calculator or othercalculation tool and manually perform the desired calculation.

Such calculations, however, can fail to provide the engineer, and otherengineers, with important information. For example, assume that theengineer add 36 to 24 to produce the product 60 and then uses thisresult in further computations. Recall that the number 36 was derivedfrom a measurement of the span of the left wing of an aircraft. If thenumber 24 was mistakenly derived from the span of the rudder, ratherthan from the span of the right wing, the resulting sum of 60 may bemathematically correct but fail to alert the engineer to the fact thatthe wrong calculation was performed. If the engineer communicates thisresult to other engineers, they too will remain unaware of the error.

Given the importance of measurements to engineers and others who workwith measurements, the current state-of-the-art both requires users toengage in tedious manual data entry and calculation, and fails toprovide additional functionality that would be useful to engineers inperformance of their work.

SUMMARY

A computer-implemented system and method creates and stores measurementstatement objects representing complete statements of measurement. Eachmeasurement statement object represents a measurement, such as “the leftwing of the F-16 aircraft has a span of 36 m,” and contains a valueobject, an aspect object, and an entity object. The value objectrepresents a value of the measurement (such as 36 meters) and the aspectobject represents an aspect of the measurement (such as span). The valueis a value of the aspect of the measurement. The entity objectrepresents an entity (such as the left wing of an F-16 aircraft)measured by the measurement. The aspect of the measurement is an aspectof the entity measured by the measurement M_(n). Measurement statementobjects may be created by parsing text describing measurements.Operations including computations, validation, searching, and reportingmay be performed on measurement statement objects.

For example, one embodiment of the present invention is directed to adata structure tangibly embodied on a computer readable storage medium.The data structure comprises a plurality of measurement statementobjects S representing a plurality of measurements M. Each of theplurality of measurement statement objects S_(n) corresponds to aparticular one of the plurality of measurements M_(n) and comprises: avalue object representing a value; an aspect object representing anaspect of the measurement M_(n), wherein the value is a value of theaspect of the measurement M_(n); and an entity object representing aphysical entity measured by the measurement M_(n), wherein the aspect ofthe measurement M_(n), is a measurable aspect of the physical entitymeasured by the measurement M_(n).

Another embodiment of the present invention is directed to a computersystem comprising: a computing device and a computer-readable mediumoperatively connected to the computing device. The computer-readablemedium contains thereon computer-executable instructions comprising aparsing module. The parsing module is configured to parse statement textinto a first measurement statement object representing a firstmeasurement. The first measurement statement object comprises: a firstvalue object representing a first value; a first aspect objectrepresenting a first aspect of the first measurement, wherein the firstvalue is a value of the first aspect; and a first entity objectrepresenting a first physical entity measured by the first measurement,wherein the first aspect is a measurable aspect of the first physicalentity. The parsing module is further configured to store the firstmeasurement statement object on the computer-readable medium.

Another embodiment of the present invention is directed to acomputer-implemented method comprising: (A) receiving, over a network,statement text; (B) parsing, using at least one computing device, thestatement text to create a first measurement statement object; and (C)storing the first measurement statement object on a computer-readablemedium. The first measurement statement object comprises: (A) a firstvalue object representing a first value; (B) a first aspect objectrepresenting a first aspect of the first measurement, wherein the firstvalue is a value of the first aspect; and (C) a first entity objectrepresenting a first physical entity measured by the first measurement,wherein the first aspect is a measurable aspect of the first physicalentity.

Yet another embodiment of the present invention is directed to acomputer-implemented system comprising: a computing device; a firstcomputer-readable medium operatively connected to the computing device;and (C) a second computer-readable medium operatively connected to thecomputing device. The first computer-readable medium tangibly stores aplurality of measurement statement objects S representing a plurality ofmeasurements M. Each of the plurality of measurement statement objectsS_(n) corresponds to a particularly one of the plurality of measurementsM_(n) and comprises: a value object representing a value; (an aspectobject representing an aspect of the measurement M_(n), wherein thevalue is a value of the aspect of the measurement M_(n); and an entityobject representing a physical entity measured by the measurement M_(n),wherein the aspect of the measurement M_(n) is a measurable aspect ofthe physical entity measured by the measurement M_(n). The secondcomputer-readable tangibly stores computer-executable instructions for:performing a measurement statement computation on a first one of theplurality of measurement statement objects to produce an outputmeasurement statement object, the measurement statement computationincluding a value computation on the value represented by the valueobject of the first one of the plurality of measurement statementobjects to produce an output value object representing an output value.The output measurement statement object includes: the output valueobject; an output aspect object representing an output aspect, whereinthe output value is a value of the output aspect; and an output entityobject representing an output physical entity, wherein the output aspectis a measurable aspect of the output physical entity.

Yet a further embodiment of the present invention is directed to acomputer-implemented method comprising: (A) receiving an inputmeasurement statement object, tangibly stored on a computer-readablemedium accessible to a computing device, wherein the input measurementstatement object represents an input measurement. The input measurementstatement object comprises: an input value object representing an inputvalue; an input aspect object representing an aspect of the inputmeasurement, wherein the input value is a value of the input aspect; andan input entity object representing an input physical entity measured bythe input measurement, wherein the input aspect is a measurable aspectof the input physical entity. The method further comprises: (B)generating, using the computing device, an output value object, tangiblystored on the computer-readable medium, by performing a measurementstatement computation on the input measurement statement object. Theoutput measurement statement object comprises: an output value objectrepresenting an output value that is a result of performing a valuecomputation on the input value; an output aspect object representing anoutput aspect, wherein the output value is a value of the output aspect;and an output entity object representing an output physical entity,wherein the output aspect is a measurable aspect of the output physicalentity.

Yet another embodiment of the present invention is directed to acomputer-implemented system comprising: a computing device; a firstcomputer-readable medium operatively connected to the computing device;and a second computer-readable medium operatively connected to thecomputing device. The first computer-readable medium tangibly stores afirst measurement statement object representing a first measurement. Thefirst measurement statement object comprises: (A) a first value objectrepresenting a first value; (B) a first aspect object representing anaspect of the first measurement, wherein the first value is a value ofthe first; and (C) a first entity object representing a first physicalentity measured by the first measurement, wherein the first is ameasurable aspect of the first physical entity. The secondcomputer-readable medium tangibly stores computer-executableinstructions for determining whether the first aspect is consistent withthe first value.

Yet a further embodiment of the present invention is directed to acomputer-implemented method comprising: (A) receiving a firstmeasurement statement object, tangibly stored on a computer-readablemedium operatively connected to a computing device. The firstmeasurement statement object represents a first measurement. The firstmeasurement statement object comprises: (A) a first value objectrepresenting a first value; (B) a first aspect object representing anaspect of the first measurement, wherein the first value is a value ofthe first; and (C) a first entity object representing a first physicalentity measured by the first measurement, wherein the first is ameasurable aspect of the first physical entity. The method furthercomprises: (B) determining whether the first aspect is consistent withthe first value.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a dataflow diagram of a computer implemented system forcreating, storing, computing, validating, searching, and reporting onmeasurement statement objects representing measurements according to oneembodiment of the present invention;

FIG. 1B is a diagram of a data structure for storing a measurementstatement object according to one embodiment of the present invention;

FIG. 2A is a flowchart of a method for parsing text into a measurementstatement object according to one embodiment of the present invention;

FIG. 2B is a flowchart of a method for parsing only text indicated bysignals into a measurement statement object according to one embodimentof the present invention;

FIG. 2C is a flowchart of a method for performing an operation on anexisting measurement statement object according to one embodiment of thepresent invention;

FIG. 3A, FIG. 3B and FIG. 3C are examples of measurement statement textthat may be parsed into measurement statement objects according to oneembodiment of the present invention; and

FIG. 4A, FIG. 4B and FIG. 4C are flowcharts of methods for validatingmeasurement statement objects according to various embodiments of thepresent invention;

DETAILED DESCRIPTION

Embodiments of the present invention are directed tocomputer-implemented systems and methods for creating statements ofmeasurement (also referred to herein as “measurement statements”), forstoring representations of such statements of measurement, and forperforming computations on such statements of measurement. For example,referring to FIG. 1A, a dataflow diagram is shown of a computer system100 for storing a plurality of measurement statement objects 108 a-naccording to one embodiment of the present invention, where n may be anynumber.

The system 100 includes a measurement statement object store 106,tangibly stored in a computer-readable medium 104, which contains theplurality of measurement statement objects 108 a-n. The measurementstatement object store 106 may be implemented in any form, such as adatabase or other data structure. The computer-readable medium 104 maybe contained within, or otherwise be accessible to and readable and/orwritable by, a computing device 102.

Each of the measurement statement objects 108 a-n represents aparticular corresponding measurement. Examples of measurement statementsthat may be represented by individual measurement statement objectsinclude, “the left wing of the F-16 aircraft has a span of 36 m,” “thethickness of a protective oxide layer is 47.5 microns,” and “the maximuminside diameter of the fuel pump's exit pipe is 2.5 cm.”

Referring to FIG. 1B, the measurement statement object 108 a is shown inmore detail according to one embodiment of the present invention.Although only the measurement statement object 108 a is shown in FIG.1B, the other measurement statement objects 108 b-n may have the same orsimilar structure as that shown in FIG. 1B. The measurement statementobject 108 a includes a value object 152, representing a value such as36 m, 47.5 microns, or 2.5 cm. The measurement statement object 108 a,however, includes more than just the value object 152. The measurementstatement object 108 a includes additional objects representinginformation which provides context to the measurement's value. Forexample, the text “the left wing of the F-16 aircraft has a span of 36m” provides contextual information indicating that the value “36 m” is avalue of a span of an entity, and that the entity in question is theleft wing of an F-16 aircraft. As will be described in more detailbelow, such contextual information is explicitly represented and storedwithin the corresponding measurement statement object 108 a, where itmay be used by the system 100 to perform functions such as computation,validation, searching, and reporting in ways that are not possible inconventional systems that merely store representations of numbers out ofcontext.

For purposes of further example, assume that the measurement statementobject 108 a represents the measurement described by the text, “the leftwing of the F-16 aircraft has a span of 36 m.” In addition to the valueobject 152, the measurement statement object 108 a includes an aspectobject 158 and an entity object 160. As stated above, the value object152 represents a value associated with the measurement represented bythe measurement statement object 108 a. In the example just provided,the value object 152 represents the value “36 m.”

In this example, the value object 152 includes both a number object 154representing a number (36) and a unit object 156 representing a type ofunits (meters). Value objects need not, however, include both numberobjects and unit objects. For example, a value object may include anumber object and no other object. As further examples, a value objectmay include objects representing a magnitude of the number, a decimalexponent of the number, and/or a precision of the number. As anotherexample, a value object may represent a value other than a number, suchas a color or other quality. More generally, a value object mayrepresent any kind of value of the corresponding measurement,represented in any way.

As mentioned above, the measurement statement object 108 a also includesaspect object 158, which represents an aspect of the measurementrepresented by the measurement statement object 108 a. In the exampleabove, the aspect represented by the aspect object 158 is “span.” Thevalue (36 meters in this example) represented by the value object 152 isa value of the aspect (span in this example) represented by the aspectobject 158.

As mentioned above, the measurement statement object 108 a also includesentity object 160, which represents an entity measured by themeasurement represented by the measurement statement object 108 a. Inthe example above, the entity is the left wing of the F-16 aircraft. Theaspect (e.g., span) is an aspect of the measured entity (e.g., the leftwing of the F-16 aircraft). An entity may be any kind of entitysusceptible to measurement, such as a physical product (e.g., anairplane, building, or computer), a service (such as a consultingservice or utility service), a project, or a financial instrument.

An aspect may be any measurable aspect of an entity. The result ofmeasuring an aspect of an entity is a value of the measurement. Examplesof aspects include, but are not limited to, height, width, depth, span,thickness, area, distance, separation, radius, diameter, bore,wavelength, coordinates, position, mass, weight, load, tonnage, value,price, cost, shear, yield point, modulus of elasticity, voltage,resistance, capacitance, inductance, duration, interval, period, timespan, speed, acceleration, factor, ratio, coefficient, and specificgravity.

The measurement statement objects 108 a-n may be represented in anyform, such as by objects in an object-oriented programming language,records in a database, meta-data in a document, or triple in a ResourceDescription Framework (RDF) description. These are merely examples ofways in which measurement statement objects 108 a-n may be represented,and do not constitute limitations of the present invention.

The entity object 160 may include an identifier object 162 representingan identifier of the measured entity, such as “F-16.” The entityidentifier object 162 may take any form, such as plain text or a token.The entity object 160 may further include a kind object 164, whichrepresents the kind of entity represented by the entity object 160. Inthe example above, the measurement statement text states that “the F-16aircraft . . . ” This indicates that the measured entity (the F-16) is akind of aircraft. Such a “kind-of” relationship between “F-16” and“aircraft” (also referred to as an “is-a” relationship) may berepresented within the entity object 160 itself by the kind object 164.

Furthermore, the entity object may include an object 166 representingthe part of the entity represented by the entity object 160. In theexample above, the measurement statement text states that “the left wingof the F-16 aircraft . . . ” This indicates that the “left wing” is apart of the F-16. Such a “part-of” relationship between “left wing” and“F-16” (also referred to as a “has-a” relationship”) may be representedwithin the entity object 160 itself by the part identifier object.

In summary, each of the measurement statement objects 108 a-n representsa particular measurement of a particular entity. The entity, in otherwords, is the subject of the measurement represented by thecorresponding one of the measurement statement objects 108 a-n. Takingthe measurement statement object 108 a as representative of theplurality of measurement statement objects 108 a-n, the measurementstatement object 108 a includes entity object 160, representing themeasured entity, and aspect object 158, representing an aspect (such asa property or predicate) of the measured entity. The measurementstatement object 160 further includes value object 152, representing avalue of the aspect of the measured entity.

One benefit of using the measurement statement object 108 a to representa measurement is that the aspect object 158 and entity object 160provide context to the value represented by the value object 152 andthereby complete the measurement statement of which the value is a part.For example, “the F-16 aircraft's left wing has a span of” completes themeasurement represented by the bare number “36.” As will be described inmore detail below, providing such complete statements of measurement canenable the system 100 to perform a wider variety of richer computationson the value than if the measurement statement object 108 a contained arepresentation of the value but not of the aspect or the entity.

Elements of the measurement statement object 108 a, such as the entityobject 160, aspect object 158, and value object 152, may be representedusing a data structure referred to herein as a “structured resourcedescriptor” (SRD). In general, a structured resource descriptordescribes a particular resource using: (1) a resource identifieridentifying the resource being described and (2) at least one of thefollowing: (a) an “is a” (kind of) operator specifying the kind ofresource being described; and (b) a “has a” (part) operator specifying apart of the resource being described. For example, the entity object 160illustrated in FIG. 1B is represented by an SRD, because the entityobject 160 includes a resource identifier (i.e., the entity identifierobject 162), a kind of operator (i.e., the kind object 164), and a partof operator (i.e., the part object 166). An SRD may, however, includeadditional operators, such as an aspect (property) operator and aqualifier operator.

For instance, one example of an SRD is “Aircraft:F-16/wing[left].span=36m.” In this example, “:” is the “is a” (kind) operator (which could berepresented by the kind object 164 in FIG. 1B). Therefore, this SRDindicates that “F-16” is a kind of “Aircraft.” In this example, “/” isthe “has a” (part) operator (which could be represented by the partobject 166 in FIG. 1B0. Therefore, this SRD indicates that the “F-16”has a “wing.” In this example, “[ ]” is the “qualifier” operator (whichcould be represented by a qualifier object 168 in FIG. 1B). Therefore,this SRD indicates that the “wing” being described is the “left” wing ofthe “F-16.” Finally, in this example, “.” is the “aspect” (property)operator (which could be represented by the aspect object 158 in FIG.1B). Therefore, this example indicates that the left wing of the F-16has a span of 36 meters.

Although in the particular example illustrated in FIG. 1B, only theentity object 160 includes the elements of an SRD, this is merely anexample and does not constitute a limitation of the invention. Moregenerally, any element or elements of the measurement statement object108 a, in any combination, may be represented by SRDs. For example, theaspect object 158 may be represented by an SRD, in which case the aspectobject 158 may include an identifier object, kind object, and partobject. Similarly, the value object 152 may be represented by an SRD, inwhich case the value object 152 may include an identifier object, kindobject, and part object.

One benefit of the SRD is that it enables components of a measurement,such as its value, aspect, and entity, to be explicitly represented andstored in a format (such as the measurement statement object 108 a shownin FIG. 1B) that can be easily processed by a computer (such as thecomputing device 102 shown in FIG. 1A). As a result, and as will bedescribed in more detail below, once a measurement is stored in the formof an SRD, computations can be performed on SRDs that take into accountnot only the value of the measurement (e.g., “36 m”) but also the aspectand/o/entity of the measurement. This enables functions to be performedthat cannot be performed by conventional systems, such as signaling awarning if an attempt is made to add values from two different entities(e.g., the span of an F-16 wing to the thickness of an oxide layer) ortwo different aspects (e.g., the span of an F-16 wing to the weight ofthe same F-16 wing).

Another benefit of the SRD is that it uses a structure that is derivedfrom the way engineers and others think about, and hence describe,measurements. For example, consider the SRD,“Aircraft:F-16/wing[left].span=36 m,” and text the SRD represents, “theleft wing of the F-16 aircraft has a span of 36 m.” This SRD andcorresponding natural-language text, of the kind that may be written byan engineer in a memo, share various structural similarities. First,both specify not only the value of the measurement (36 meters), but alsothe aspect (span) and entity (left wing of the F-16 aircraft) of themeasurement. Second, both begin by specifying the entity, followed bythe aspect, followed by the value. Although SRDs are not required tohave all of these features, imbuing SRDs with such features can beparticularly beneficial for representing information about measurementsthat is useful to engineers, performing computations on suchinformation, creating SRDs based on descriptions of measurements writtenby engineers, and displaying information about measurements toengineers.

The measurement statement objects 108 a-n may be created in any manner.For example, they may be created directly by computer software and/orhardware, or derived from descriptions of measurements created byengineers or other users. Such user-generated descriptions may beprovided in any of a variety of ways and take any of a variety of forms.For example, measurement descriptions may be provided within wordprocessing documents, spreadsheets, or email messages, in the samedocuments as other content not intended for use in creating themeasurement statement objects 108 a-n. As another example, users mayinput descriptions of measurements into a special software programdedicated to that purpose, or into a special window or other inputmechanism provided by a software program (e.g., a word processor) thatis otherwise dedicated to other purposes. Such an input mechanism mayallow or require the user to describe a measurement in a relativelyunstructured format (such as by typing the text, “the maximum insidediameter of the fuel pump's exit pipe is 2.5 cm”) or in a relativelystructured format (such as by filling in a form containing separatefields for distinct elements of the measurement statement object, suchas its value, aspect, and entity).

Furthermore, processing operations (such as computations and validation)may be performed on the measurement statement objects 108 a-n regardlessof how such objects were created. Certain embodiments of the presentinvention, however, are directed to techniques for deriving measurementstatement objects from content created by engineers or other users, asfurther illustrated by the system 100 of FIG. 1A and the flowchart of amethod 200 shown in FIG. 2A.

A plurality of users 110 a-d of the system 100 use computing devices 112a-d to create content 114 a-d, respectively. (Although only four users110 a-d are shown in FIG. 1A for purposes of example, the system 100 mayinclude any number of users.) Such user-created content 114 a-d may, forexample, be email messages 114 a, word processing documents 114 b,spreadsheets 114 c, input 114 d provided to a software program designedspecifically to receive descriptions of messages, or any other kind ofcontent that can be created by the users 110 a-d using computing devices112 a and stored on computer-readable media. The content 114 a-d mayinclude, for example, text, images, audio, video, or any combinationthereof. Furthermore, the computing devices 112 a-d may process inputprovided by the users 110 a-d to create the resulting content 114 a-d.For example, user 110 a may speak into a microphone to create an audiostream which is transformed into text by an automatic speech recognizesexecuting on the computing device 112 a, which stores the resulting textas part of the email message 114 a.

Assume for purposes of example that the users 110 a-d are engineersworking for a single company. Note, however, that this is not arequirement of the present invention. There need not be any relationshipamong the users 110 a of the system 100. Certain embodiments of thepresent invention, however, are particularly useful when used inconjunction with a community of users working for a single entity, on asingle project, or in a shared domain which benefits from re-use ofuser-created content.

The engineer-users 110 a-d may, for example, create the content 114 a-dby engaging in their normal day-to-day work. For example, theuser-created content 114 a-d may include word processing documents 114 bcontaining memos written by the engineers 110 a-d to each other abouttheir research and designs; email messages 114 a-d sent among engineers110 a-d exchanging information and conclusions; and spreadsheets 114 ccontaining results of experiments performed by the engineers 110 a-d.Such content 114 a-d may be created, stored, modified, and transmittedacross a network 116 in the conventional ways in which such content 114a-d is created, stored, modified, and transmitted. For example, theengineers 110 a-d may use conventional word processing software tocreate the documents 114 b and to store such documents 114 b inconventional word processing document formats. Similarly, the engineers110 a-d may use conventional email software to create email messages 114a and to transmit such messages 114 a using conventional emailprotocols. As a result, various embodiments of the present invention donot require the engineers 110 a-d to learn or apply special techniquesto create, store, modify, or transmit the content 114 a-d.

The user-created content may include statements written in a naturallanguage, such as English. For example, consider FIG. 3A, whichillustrates an example of text contained within one of the wordprocessing documents 114 b, namely the text:

-   -   The following is a description of our current design for the        new; F-16. This design is preliminary, and has not been tested.        The left wing of the F-16 aircraft has a span of 36 m. The span        of the aircraft's right wing is the same as that of the left        wing . . . .

The first sentence 302 a of this memo describes the purpose of the memousing a description written in a natural language, namely English. Thesecond sentence 302 b provides further background information about thememo. The third sentence 304 describes a measurement of the span of theproposed F-16's left wing, measured in meters. The third sentence 304,therefore, describes a measurement and therefore is an example of“measurement statement text,” as that term is used herein. The fourthsentence 306 also describes a measurement (of the span, in meters, ofthe proposed F-16's right wing), and therefore is also an example ofmeasurement statement text.

The author 110 b of the memo 114 b may write it as part of performingany kind of work. For example, the author 110 b may have measured theactual length of a physical prototype of an airplane before writing thememo, in which case the third and fourth sentences 304 and 306 mayreflect actual measurements of the physical prototype. As anotherexample, the third and fourth sentences 304 and 306 may representdescriptions of existing airplane designs, or descriptions of proposed,but not yet constructed, airplane designs.

The system 110 may include at least one computing device 118 containinga parsing module 120. The parsing module 120 is configured to parsemeasurement statement text into measurement statement objects 108 a-n,which represent measurements described by the measurement statementtext. More specifically, and referring to FIG. 2A, in general theparsing module 120 may parse a particular instance of measurementstatement text into a measurement statement object as follows. Theparsing module 120 receives the measurement statement text over thenetwork 116 or in another manner (FIG. 2A, step 202). The measurementstatement text may, for example, be the third sentence 304 in thedocument 114 b shown in FIG. 3A.

The parsing module 120 creates a measurement statement object 122 torepresent the measurement described by the measurement statement text(step 204). The measurement statement object 122 may have the structureshown in FIG. 1B. The parsing module 120 identifies value text, such asthe text “36 in” in sentence 304, representing a value in themeasurement statement text (step 206). The parsing module 120 parses thevalue text into a value object (e.g., of the type shown as object 152 inFIG. 1B) that the parsing module 120 stores in the measurement statementobject 122 (step 208).

Similarly, the parsing module 120 identifies aspect text, such as thetext “span of” in sentence 304, representing an aspect of themeasurement statement text (step 210). The parsing module 120 parses theaspect text into an aspect object (e.g., of the type shown as object 158in FIG. 1B) that the parsing module 120 stores in the measurementstatement object 122 (step 212).

Finally, the parsing module 120 identifies entity text, such as the text“the left wing of the F-16 aircraft” in sentence 304, representing anentity described by the measurement statement text (step 214). Theparsing module 120 parses the entity text into an entity object (e.g.,of the type shown as object 160 in FIG. 1B) that the parsing module 120stores in the measurement statement object 122 (step 216). As thisexample illustrates, the parsing module 120 may parse text representingresource identifiers, “is a” (kind of) relationships, and “has a” (partof) relationships into SRDs, and may do so not only for entities, butalso for aspects, values, and other elements.

Although not shown in FIG. 2A, the parsing module 120 may parseadditional text, such as text representing qualifiers, precision, andother metadata, into the measurement statement object 122. Once theparsing module 120 has created the measurement statement object 122, theparsing module 120 stores the measurement statement object 122 in themeasurement statement object store 106 on the computer-readable medium104, in the form of one of the measurement statement objects 108 a-n(step 218).

In the method 200 of FIG. 2, the parsing module parses all measurementstatement text that it receives. This is merely an example and does notconstitute a requirement of the present invention. Rather, the parsingmodule may be instructed to parse particular content, or otherwise becaused to parse particular content, in any of a variety of ways. Forexample, as illustrated by the method 220 of FIG. 2B, the parsing module120 may receive (step 222) and scan content (step 224), such as the memo114 b shown in FIG. 3A, but only attempt to parse portions of thecontent that contain predetermined “signals.” More specifically, theparsing module 120 may search through the content until it encounters arecognized signal (step 226) and, upon encountering such a signal, parsethe content associated with that signal (step 230), such as by using thetechniques described above with respect to FIG. 2A. The parsing module120 may repeatedly scan and parse units of the content until the parsingmodule 120 has scanned through the entire content (step 228).

For example, the parsing module 120 may recognize certain predeterminedsignals as indicators that the text immediately following the signalrepresents measurement statement text to be parsed into a measurementstatement object. Such signals may, for example, be patterns of textwhich are unlikely to appear in natural language text, such as “--”(double dash), “//” (double slash), or another other combination ofcharacters. Both prefix signals and suffix signals may be used, suchthat the parsing module 120 only attempts to parse text between amatching pair of prefix and suffix signals (e.g., “//The left wing ofthe F-16 aircraft has a span of 36 m.//”). The parsing module 120 may,therefore, by default not attempt to parse text in any particular unitof content, and only attempt to parse text when prompted to do so by anappropriate signal in the text. Users 110 a-d may intentionally includesignals in the content 114 a-d they create to indicate to the parsingmodule 120 that the signaled text is to be parsed.

In such an embodiment, the author 110 b of the memo 114 b shown abovemay include “//” signals within the memo 114 b to indicate to theparsing module 120 that the third and fourth sentences 304 are to beparsed into measurement statement objects, as shown by the alternativeembodiment of the memo 114 b′ shown in FIG. 3B, which includes thefollowing text:

-   -   The following is a description of our current design for the new        F-16. This design is preliminary and has not been tested. //The        left wing of the F-16 aircraft has a span of 36 m.// //The span        of the aircraft's right wing is the same as that of the left        wing// . . . .

In the alternative memo 114 b′ shown in FIG. 3B, the first and secondsentences 302 a and 302 b are the same as those in the original memo 114of FIG. 3A. The third and fourth sentences 304′ and 306′ in FIG. 3B,however, include explicit signals 310 a-b and 312 a-b, respectively.

More generally, signals may be words, phrases, symbols, tags, documentformatting (e.g., boldface or particular document styles), or otherindicators that content is to be treated as measurement statement textto be parsed by the parsing module 120. For example, a user may includean SRD, in text format (with or without delimiters), within a documentto indicate that the SRD text is to be parsed into a measurementstatement object, as shown by the alternative embodiment of the memo 114b″ shown in FIG. 3C, which includes the following text:

-   -   The following is a description of our current design for the new        F-16. This design is preliminary and has not been tested.        //Aircraft:F-16/wing[left].span=36 m//        //wing[right].span=wing[left].span//

In the alternative memo 114 b″ shown in FIG. 3C, the first and secondsentences 302 a and 302 b are the same as those in the original memo 114of FIG. 3A. The third and fourth sentences 304″ and 306″ in FIG. 3C,however, include explicit signals, each of which takes the form of anSRD in text form.

The use of predetermined characters (e.g., “//” or “-”) as signals ismerely an example and does not constitute a limitation of the presentinvention. Alternatively, for example, the parsing module 120 mayattempt to parse any content, whether or not delimited by expresssignals, which includes indications that the content represents ameasurement. For example, in the case of the memo 114 b illustrated inFIG. 3A, the parsing module 120 may be triggered by phrases by as “hasa,” “of,” “is the same as,” and the use of values with units such as “36m,” which indicate to the parsing module 120 that the correspondingsentences may represent measurements. More generally, the parsing module120 may be triggered in whole or in part by clauses containing certainwords, such as words representing known aspects (e.g., “length,”“width,” “area”), units (e.g., “feet,” “seconds”), has-a relationships(e.g., “has a,” “contains a”) or is-a relationships (e.g., “is a”). Asyet another example, the parsing module 120 may attempt to parse onlysentences or clauses having a permissible syntax for measurementstatement text (e.g., “The <part> of the <entity> has a <aspect> of<value>”). In any such case, the parsing module 120 may abort theparsing attempt if the text being parsed fails to yield an appropriatemeasurement statement object.

As illustrated by the variations of the memo 114 b illustrated in FIGS.3A-3C, the user-generated content 114 a-d may include bothnatural-language content which is intended solely for communication toanother human (e.g., “The following is a description of our currentdesign for the new F-16”) and content containing information aboutmeasurements which is suitable for being parsed by the parsing module120 to create or modify a measurement statement object (e.g., “//Theleft wing of the F-16 aircraft has a span of 36 m.//”). The latter kindof content is referred to herein as “measurement statement text” and theformer as “non-measurement statement text.” The parsing module 120 may,therefore, include a mechanism for distinguishing between measurementstatement text and non-measurement statement text, and for parsing onlymeasurement statement text to produce the measurement statement objects108 a-n.

Regardless of how the parsing module 120 decides whether to parse anyparticular unit of content within a memo or other larger content, oncethe parsing module 120 parses a particular instance of measurementstatement text, the parsing module 120 creates a measurement statementobject representing the measurement described by the measurementstatement text. As a result, the system 100 may process measurements inthe user-created content 114 a-d without requiring the engineers 110 a-dto describe such measurements in an unnatural structured form in thecontent itself, and without requiring the engineers 110 a-d to manuallycreate structured representations of the measurements in objects outsidethe content, such as in separate database records.

As shown in FIG. 1A, the parsing module 120 may store measurementstatement objects 108 a-n that it creates in the measurement statementobject store 106. The measurement statement object store 106 may, butneed not be, stored separately from the content 114 a-d that was parsedto create objects 108 a-n in the object store 106. Rather, themeasurement statement objects 108 a-n may be stored within the content114 a-d itself, such as in the form of meta-data represented as SRDs orin other formats. Such meta-data may be stored within existing meta-datafields of conventional file formats (such as the EXIF portion of a JPEGfile) or in any other suitable manner.

The number of measurement statement objects 108 a n in the store 106grows as the users 110 a-d create more content and the measurementstatement text in such content 114 a-d is parsed into measurementstatement objects 108 a-n. The users 110 a-d may be provided with accessto the measurement statement object store 106 in any of a variety ofways, as will be described in more detail below. One benefit ofproviding the users 110 a-d with shared access to the measurementstatement object store 106 is that the need for redundant data entry ofmeasurement information may be eliminated. Another benefit is thatmeasurement information provided by one of the users 110 a-d may be usedto validate measurement information provided by other ones of the users110 a-d. Examples of these and other techniques will be described inmore detail below.

Note that in the various examples provided above of content that theparsing module 120 may parse to create measurement statement objects 108a-n, the content that serves as input to the parsing module 120 is thesame as, or similar to, natural language content. As a result, theauthor of the content need not deviate significantly, or perhaps at all,from his normal writing style to create content that is both readable toa human (whether the author or someone else) and capable of beingprocessed by a computer in a wide variety of ways. One reason theparsing module 120 is able to provide such a natural input language tothe users 110 a-d is that the destination structure—a measurementstatement object represented as an SRD—contains elements whose contentand arrangement maps closely to the way in which engineers naturallydescribe measurements.

A related benefit of embodiments of the present invention is that theyenable measurements to be captured from measurement-related content thatengineers already create in the course of their day-to-day work butwhich remains unusable for performing functions automatically such ascomputation, validation, searching, and reporting, because such contentis stored in word processing documents, email messages, and otherunstructured forms. Embodiments of the present invention transform thecontents of existing engineering communications into measurementstatement objects that are represented in a form that can be easilyprocessed by a computer, with little or no additional effort required onthe part of the engineers. As a result, embodiments of the presentinvention enable the content already created by engineers as part oftheir day-to-day work to become re-usable as computer-processable datafor performing functions such as computation, validation, searching, andreporting, to the benefit not only of the individual engineers whocreated the original content, but to other engineers in the sameorganization and to the organization as a whole.

Furthermore, embodiments of the present invention do not merely providea mechanism for conventional kinds of numerical data to be captured moreeasily, they enable a richer kind of data to be captured. In particular,embodiments of the present invention enable measurement statementobjects to be created which represent complete measurements, not merelybare numerical values. For example, conventional mathematical softwaretypically explicitly stores only the numerical value of a measurement(e.g., “22”) in a computer-processable form, or perhaps the value andits units (e.g., “36 m”). Embodiments of the present invention, incontrast, store complete measurements including not only the value, butalso the aspect of the measurement (e.g., “span”) and the entity beingmeasured (e.g., “the wing of the F-16”). Storing such additionalinformation enables errors in computation to be avoided, such as bysignaling an error when an attempt is made to add a span to a thickness.Conventional systems, which merely store numerical values and perhapsunits, cannot detect such inconsistencies, particular when the units(e.g., inches) of both quantities being added are the same.

Certain implementations of embodiments of the present invention mayrequire engineers and other users to write statement text usingparticular grammars. Even if such a requirement is imposed, however, itneed not be overly burdensome on users, because such grammars may be thesame as or very similar to the natural language grammars that usersalready use in their everyday communications. For example, an engineermay conform to the system's grammar by writing the text “the span of theF-16's wing is 36 m.” Such text shares the grammar of natural Englishwriting and therefore does not require the engineer to change his or herwriting style. Even if certain natural grammars may be excluded by thesystem, users have already demonstrated their ability to adopt certainnon-natural content in their everyday writing without undue burden. Forexample, we have all learned to refer to our uncle Fred Smith asfsmith23@yahoo.com, clearly an accommodation to Internet-speak intrudingon our natural language.

Although in the examples described above all of the measurementstatement objects 108 a-n are derived from measurement statement text114 a-d written by users 110 a-d of the system 100, this is not alimitation of the present invention. For example, the measurementstatement objects 108 a-n may include objects not created by users 110a-d of the system 100, such as measurement statement objects created byan administrator of the system 100 or imported into the system fromanother system. Such predetermined measurement statement objects may,for example, represent publicly-available measurements (e.g., “theheight of the Empire State Building is 1453 feet”) or physical constants(e.g., “Planck's constant is 6.626068×10−“4 m2 kg/s”).

The parsing module 120 may parse the content 114 a-d at any time. Forexample, the parsing module 120 may monitor the content 114 a-d as it iscreated and parse such content on the fly. Such functionality may beimplemented, for example, by implementing the parsing module 120 as aplug-in (sometimes called a “helper application”) to a word processor,email client, spreadsheet application, or other program, which monitorsand parses content 114 a-d as it is created by the users 110 a-d, evenbefore the users 110 a-d store or transmit such content 114 a-d. Such aplug-in may perform other functions, such as prompting the users 110 a-d(e.g., using a drop-down list) with a set of acceptable signals fromwhich to select.

As another example, the parsing module 120 may parse the content 114 a-dwhen it is saved in the computing devices 112 a-d or transmitted overthe network 116. For example, the parsing module 120 may monitor allfiles maintained by a file system (e.g., in or accessible to thecomputing devices 112 a-d) and parse any newly-saved or modifieddocuments after they are saved or modified. The parsing module 120 maymonitor all email messages transmitted by an email server or received byan email client and parse any email messages after they are transmittedor received. Such parsing may be performed, for example, eitherimmediately, or after some delay to enable content to be processed inbatches (e.g., nightly).

As another example, the parsing module 120 may only parse content thatis specifically directed to the parsing module 120 by the users 110 a-dor in some way. For example, a specific directory may be designated in afile system for files to be parsed by the parsing module 120. If one ofthe users 110 a-d desires for a particular file to be parsed by theparsing module 120, the user may save the document (or a copy thereof)into the pre-designated directory. The parsing module 120 may parse onlyfiles saved into the pre-designated directory and no other files. Asanother example, a specific email address may be designated for emailmessages and/or documents to be parsed by the parsing module 120. If oneof the users 110 a-d desires for a particular email message and/ordocument to be parsed, the user may send the email message and/ordocument to the pre-designated email address. The user may transmit thesame email message both to one or more human users and to the parsingmodule 120 by including multiple email addresses as recipients of theemail message. The parsing module 120 may receive and parse all emailmessages and/or documents transmitted to the pre-designated emailaddress and no other email messages and/or documents.

The parsing module 120 may be configured to parse measurement statementtext according to one or more syntaxes (grammars). For example, theparsing module 120 may recognize measurement statement text written inthe form “<entity> has <aspect>=<value>,” “<entity> has <aspect> of<value>,” “<aspect> of <entity> is <value>,” and so on. The parsingmodule 120 may also be configured to handle text containing differentverb tenses (e.g., “is,” “was,” “will be”) and filler words (such as“the” in “the F-16's left wing has a span of 36 m”). Note the use of thepossessive apostrophe in this example (“the F-16's left wing”) to denotea part of (has a) relationship. Other variations on grammars that may beparsed by the parsing module 120 will be apparent to those havingordinary skill in the art. Furthermore, other grammars may be used inlanguages other than English.

In one embodiment of the present invention, the parsing module 120 mayparse measurement statement text into the measurement statement objects108 a-n in two steps: (1) parsing measurement statement text intomeasurement statement scripts, expressed in an intermediate language,and (2) converting the measurement statement scripts into measurementstatement objects. A script statement may take a form such as<entity>.<aspect>=<value>. This two-step parsing process is merely anexample, however, and does not constitute a limitation of the presentinvention. In one embodiment, the resulting measurement statementobjects are represented as RDF triples in XML.

Measurement statement objects 108 a-n in the measurement statementobject store 106 may reference each other. A reference to one of themeasurement statement objects 108 a-n may refer to the entiremeasurement statement object or to any element of the measurementstatement object, such as its value object, aspect object, or entityobject.

One measurement statement object may refer to another measurementstatement object in any of a variety of ways, for any of a variety ofpurposes. For example, a first measurement statement object A may referto a second measurement statement object B to access the value of objectB, as in the following example: “the span of the F-16's left wing isequal to the span of the F-16's right wing.” Assuming that a measurementstatement object representing the span of the F-16's right wing alreadyexists in the measurement statement object store 106, such a statementmay be used to assign the value of the span of the F-16's right wingfrom one measurement statement object to the span of the F-16's leftwing in another measurement statement object.

Note that such a value assignment may be performed by the parsing module120 or other component of the computing device 118 in response toparsing text, such as “the span of the F-16's left wing is equal to thespan of the F-16's right wing,” in the content 114 a-d. The process 200described above in connection with FIG. 2A, of parsing measurementstatement text to create a new measurement statement object, istherefore merely an example of one process that the computing device 118may perform in response to the content 114 a-d. Accessing informationstored in existing measurement statement objects 108 a-n and modifyingthat information are other examples of processes that the computingdevice 118 may perform in response to the content 114 a-d.

As another example, a reference to object A may refer to object B toperform a computation involving object B, as in the following example:“the area of the room is equal to the square of the room's width.”Assuming that a measurement statement object representing the room'swidth already exists in the measurement statement object store 106, inresponse to such a statement the parsing module 120 or other componentmay calculate the square of the room's width and assign the resultingvalue to a measurement statement object representing the room's area.Note that the result of the squaring operation may itself be ameasurement statement object having a value object, an aspect object,and an entity object. This is just one example of how performing acomputation on a measurement statement object can yield anothermeasurement statement object.

Although in the example just described, a single operand computation(square) is performed, the computation module 124 may performcomputations having any number of operands. Each such operand may be ameasurement statement object, and the output of the computation may be ameasurement statement object. For example, in response to the text, “theroom's area is equal to the room's width multiplied by the room'sheight,” the computation module may perform a computation on measurementstatement objects representing the room's width and the room's heightand store the result in a measurement statement object representing theroom's area. Such a computation may involve performing a computation onthe values of each input measurement object, and storing the resultingvalue (e.g., product) in the output measurement object.

The aspect and entity of the measurement statement object resulting froma computation may be identified in any of a variety of ways. Forexample, the computation module 100 may be configured to know whichoutput aspect results from performing particular computations onparticular input aspects. As one example, the computation module 124 mayknow that multiplying a width by a height results in an area, andtherefore may set the aspect of the resulting output measurementstatement object to “area.” As another example, the instruction to thecomputation module 124 may specify the aspect of the output measurementstatement object, as in the case where “the room's area is equal to theroom's width multiplied by the room's height” specifies that the outputaspect is “area.” The entity of the output measurement statement objectmay be copied from the entity of the input measurement statement objects(e.g., “room” in the example just provided).

As another example, a measurement statement object may refer to anexisting measurement statement object to modify the value of theexisting object, as in the following example: “the thickness of theprotective oxide layer has changed to 50 microns.” Assuming that ameasurement statement object representing the thickness of theprotective oxide layer already exists in the measurement statementobject store 106, in response to such a statement the parsing module 120or other component may modify that object's value object to represent avalue of 50 microns. The system 100 may, but need not, store a log ofprevious values of elements of the measurement statement objects 108a-n.

The examples above are instances of the general process 240 illustratedin FIG. 2C, in which the parsing module 120 receives text whichreferences an existing measurement statement object in the measurementstatement object store 106 (step 242). Such a reference may refer to anyelement of the measurement statement object, such as its value, aspect,or entity. The parsing module 120 parses the text (step 244) andprovides a representation of the parsed text to a computation module124. The computation module 124 retrieves the referenced data (such asthe room's existing width) (step 246) and performs the specifiedoperation on the data (such as squaring the width) (step 248). Theoperation may also include storing the result in an element (e.g., thevalue of the room's area) of a measurement statement object.

Note that although in the preceding examples, the computation module 124performs computations on data stored in the measurement statementobjects 108 a-n in response to instructions received from users 110 a-din the form of text and other content 114 a-n, this is merely an exampleand does not constitute a limitation of the present invention. Rather,the computation module 124 may perform computations on data stored inthe measurement statement object store 106 in response to any stimulus,such as instructions received from other software or from hardwaredevices under program control.

A reference to an existing measurement statement object may or may notinclude a complete descriptor of the existing measurement statementobject, in which case elements of the system 100 (such as the parsingmodule 120 and computation module 124) may use context information toidentify the measurement statement object being referenced. For example,assume that the measurement statement object store 106 contains ameasurement statement object representing the left wing of an F-16. Areference to “the wing of the F-16” is potentially ambiguous because itdoes not specify that the wing being referenced is the left wing. Insuch a case, the system 100 may attempt to disambiguate the referenceby, for example, searching the measurement statement object store 106for measurement statement objects representing F-16 wings. If the onlysuch existing object is an object representing the F-16's left wing,then the system 100 may conclude that the reference to “the wing of theF-16” is a reference to the left wing of the F-16 and process thereference accordingly.

The context information associated with a particular reference may,however, be identified in other ways. For example, the users 110 a-d mayprovide such context information before providing the reference. Forexample, one of the users 110 a-d may provide a “context” command to thesystem 100, indicating that the current context is the F-16's left wing.The system 100 may then interpret all subsequent references within thiscontext until the context changes.

As another example, a user may provide content 114 a-d to the system 100in distinct sets of content, each of which the user may associate with aparticular context by attaching a label (such as in the form of an SRD)or other context identifier to the set. All statements within a set ofcontent may be interpreted by the system 100 in the context defined bythe associated context identifier. For example, the context identifierfor a particular set of content may specify the resource “F-16 wing,” inwhich case the system 100 may interpret all statements within that setof content as having the context “F-16 wing.”

Although measurement statement objects 108 a-n may refer to other onesof the measurement statement objects 108 a-n, not all statements thatrefer to measurement statement objects 108 a-n need themselves bemeasurement statement objects. Rather, the measurement statement datastore 106 may include statement objects 111 a-m that are not measurementstatement objects, but which refer to measurement statement objects 108a-n. may refer to measurement statement objects. For example, one of thestatement objects 111 a-m A may indicate that an existing one of themeasurement statement objects 108 a-n B is invalid, expired, anestimated, an actual measured value, or an adopted standard. In thisexample, the referring statement object A need not be a measurementstatement object because it does not represent a measurement. Rather, itrepresents a non-measurement property of measurement statement object B.

The system 100 may include a validation module 126 that validates thecontents of measurement statement objects 108 a-n in a variety of ways.For example, as illustrated by the method 400 of FIG. 4A, the validationmodule 126 may determine whether the value represented by the valueobject of one of the measurement statement objects 108 a-n (step 402) isconsistent with the aspect (step 404) represented by the aspect objectof the same measurement statement object (step 406). The validationmodule 126 may produce an output object 134 indicating whether the valueand aspect are consistent with each other (step 408). An example of avalue that is inconsistent with an aspect is the statement text,“thickness of oxide layer is 37 seconds,” because the units (seconds) ofthe value “37 seconds” is not a kind of thickness (the aspect).

As another example, and as illustrated by the method 410 of FIG. 4B, thevalidation module 126 may determine whether the aspect represented bythe aspect object of one of the measurement statement objects 108 a-n(step 412) is consistent with the aspect (step 414) represented by theaspect object of a different measurement statement object (step 416). Inthis case, the output object 134 may indicate whether the aspects of thetwo measurement statement objects are consistent with each other (step418). The validation module 126 may, for example, determine whether theaspects of two measurement statement objects are consistent with eachother when the computation module 124 attempts to perform a computationon the two measurement statement objects. For example, if one of theusers 110 a-d provides measurement statement text stating, “the sum ofthe thickness of the oxide layer and the volume of the cavity,” thecomputation module 124 may first use the validation module 126 tovalidate this statement, which may include determining that the twoaspects (thickness and volume) are inconsistent with each other. Inresponse, the system 100 may signal an error and refuse to perform therequested computation.

As yet another example, and as illustrated by the method 420 of FIG. 4C,the validation module 126 may determine whether the entity representedby the entity object of one of the measurement statement objects 108 a-n(step 422) is consistent with the entity (step 414) represented by theentity object of a different measurement statement object (step 426). Inthis case, the output object 134 may indicate whether the entities ofthe two measurement statement objects are consistent with each other(step 428). The validation module 126 may, for example, determinewhether the entities of two measurement statement objects are consistentwith each other when the computation module 124 attempts to perform acomputation on the two measurement statement objects. For example, ifone of the users 110 a-d provides measurement statement text stating,“the product of the width of the living room and the length of thedining room,” the computation module 124 may first use the validationmodule 126 to validate this statement, which may include determiningthat the two entities (living room and dining room) are inconsistentwith (e.g., not equal to) each other. In response, the system 100 maysignal an error and refuse to perform the requested computation.

The validation module 126 may perform validation in any of a variety ofways. For example, the system 100 may store information aboutrelationships among unit types (e.g., inches, seconds) and aspects(e.g., thickness, duration), such as by using referential objects 111a-m. For example, the system 100 may store an indication that “inches,”“feet,” and “yards” (unit types) are all measurements of “thickness” and“distance” (aspects). Such indications may form paths of relationshipsthat the validation module 126 may use to perform validation. Forexample, the validation engine 126 may conclude that two aspects areinconsistent with each other if the two aspects do not share a commonancestor, as indicated by the paths of relationships stored in thesystem 100.

The system 100 may include a reporting module 136, which may provideusers 110 a-d of the system 100 with various ways to search and viewinformation in the measurement statement object store 106. For example,the reporting module 136 may include a search engine to which users 110a-d may provide queries 137, and in response to which the search enginemay provide information 140 from the measurement statement object store106 that satisfies the queries 138. The query 138 may, for example, takethe form of a SQL statement or measurement statement text. For example,user 110 a may provide a query such as “the F-16's wing span,” inresponse to which the reporting module 136 may display the span(s) ofthe F-16's wing(s), if the measurement statement object store 106contains any measurement statement objects representing such span(s).Alternatively, for example, the query 138 may take the form of an SRD,such as “Aircraft:F-16/wing.” Such queries may be provided, and theresults provided, locally or over the network 116, such as through aweb-based interface or by sending and receiving email messages.

The query 138 may also, for example, take a form such as, “list allparts of the F-16 left wing,” which may be represented as an SRDcontaining a wildcard term, such as “F-16/wing:left/*”. The SRDstructure makes it easy to formulate and process such a query, whichwould be difficult to formulate and process in conventional systemslacking the richness of the SRD.

The output of the reporting module 136 may take any form. For example,the reporting module 136 may provide search results 140 in the form ofSRDs (e.g., “Aircraft:F-16/wing[left].span=36 m”) or in the form ofnatural language sentences (e.g., “The span of the F-16 Aircraft's leftwing is thirty-six meters.”

The reporting module 136 may also perform searches and provide queryresults 140 automatically. For example, user 110 a may register with thereporting module 136 to be notified upon any change to a particular oneof the measurement statement objects 106 or a particular element thereof(such as its value object, aspect object, or entity object). Thereafter,the reporting module 136 may automatically notify the user 110 a uponany such change to the specified measurement statement object. One wayin which this function may be performed is for the user 110 a to providea query to the reporting module 136 once, and for the reporting module136 to automatically run the query periodically (e.g., daily) thereafterand to notify the user 110 a of any new results generated.

As another example, the reporting module 136 may notify the user 110 aif metadata referencing a particular measurement statement object hasbeen created or modified. Such metadata may, for example, be a commentabout the measurement statement object or other kind of statement whichrefers to the measurement statement object. In this and other examples,the output of the reporting module 136 may take any form. For example,the reporting module 136 may output images to indicate whether aparticular measurement statement object has any metadata attached to it,and/or whether such metadata has been recently added or changed. Forexample, the reporting module 136 may output a blank image if themeasurement statement object has no metadata attached to it (or if theattached metadata has not changed during some relevant time period), butoutput an image of a red flag if the measurement statement object hasmetadata attached to it (or if the attached metadata was added orchanged recently). Such functionality may be implemented, for example,in a web page by including an IMG tag which contains an identifier of ameasurement statement object. The IMG tag may be used to query thereporting module 136, which may dynamically retrieve and provide anappropriate image for the measurement statement object (such as a blankimage or red flag) in response. Although in this particular example thereporting module 136 provides the image in response to a specific query,alternatively the reporting module 136 may automatically andperiodically provide such images based on the metadata (or lack thereof)associated with a particular measurement statement object.

Although in the examples just provided, queries 138 are provided byusers 110 a-d and the output 140 of queries is provided to users 110a-d, such queries 138 may alternatively be provided by software programsand the results provided to such software programs using any suitablecommunications mechanism.

It is to be understood that although the invention has been describedabove in terms of particular embodiments, the foregoing embodiments areprovided as illustrative only, and do not limit or define the scope ofthe invention. Various other embodiments, including but not limited tothe following, are also within the scope of the claims. For example,elements and components described herein may be further divided intoadditional components or joined together to form fewer components forperforming the same functions.

Although certain data structures, such as measurement statement objects,value objects, aspect objects, and entity objects are referred to hereinas “objects,” such data structures need not be represented as objectswithin the meaning of object-oriented programming. Rather, the term“object” refers herein more generally to any unit of stored data.

Furthermore, only in certain examples disclosed herein, measurementstatement text is written in a natural language, this is not arequirement of the present invention. Rather, measurement statement textmay take any form. For example, “measurement statement text” need not berepresented as text or be represented solely as text. For example,measurement statement text may be represented as data stored in multiplecells in a spreadsheet.

Although measurement statement objects are described herein ascontaining value objects, aspect objects, and entity objects,measurement statement objects may include additional objects. Forexample, a measurement statement object may include an object indicatingthat the measurement represented by the measurement statement object isa requirement or an estimate. Furthermore, any data described herein asbeing stored within a particular object may instead be stored in aseparate object. For example, although the units of a value may bestored within a value object, alternatively the units may be storedwithin a separate units object.

It was stated above that a measurement statement object, and any objectcontained therein, may be represented as a structured resourcedescriptor (SRD). This implies that any such object may further containone or more SRDs, and so on recursively to any depth. As a result, ameasurement statement object may recursively define a hierarchy ofcontextual information about the measurement represented by themeasurement statement object.

The particular characters used to represent SRD operators, such as “/”and “:”, are merely examples and do not constitute limitations of thepresent invention. Rather, any characters or other kind of data may beused to represent operators within an SRD. More generally, an SRD may berepresented in any format. Furthermore, SRDs need not include all of theoperators described herein. For example, SRDs need not include thequalifier operator (e.g., “[1”). Furthermore, SRDs may include operatorsin addition to those disclosed herein.

The techniques described above may be implemented, for example, inhardware, software, firmware, or any combination thereof. The techniquesdescribed above may be implemented in one or more computer programsexecuting on a programmable computer including a processor, a storagemedium readable by the processor (including, for example, volatile andnon-volatile memory and/or storage elements), at least one input device,and at least one output device. Program code may be applied to inputentered using the input device to perform the functions described and togenerate output. The output may be provided to one or more outputdevices.

Each computer program within the scope of the claims below may beimplemented in any programming language, such as assembly language,machine language, a high-level procedural programming language, or anobject-oriented programming language. The programming language may, forexample, be a compiled or interpreted programming language.

Each such computer program may be implemented in a computer programproduct tangibly embodied in a machine-readable storage device forexecution by a computer processor. Method steps of the invention may beperformed by a computer processor executing a program tangibly embodiedon a computer-readable medium to perform functions of the invention byoperating on input and generating output. Suitable processors include,by way of example, both general and special purpose microprocessors.Generally, the processor receives instructions and data from a read-onlymemory and/or a random access memory. Storage devices suitable fortangibly embodying computer program instructions include, for example,all forms of non-volatile memory, such as semiconductor memory devices,including EPROM, EEPROM, and flash memory devices; magnetic disks suchas internal hard disks and removable disks; magneto-optical disks; andCD-ROMs. Any of the foregoing may be supplemented by, or incorporatedin, specially-designed ASICs (application-specific integrated circuits)or FPGAs (Field-Programmable Gate Arrays). A computer can generally alsoreceive programs and data from a storage medium such as an internal disk(not shown) or a removable disk. These elements will also be found in aconventional desktop or workstation computer as well as other computerssuitable for executing computer programs implementing the methodsdescribed herein, which may be used in conjunction with any digitalprint engine or marking engine, display monitor, or other raster outputdevice capable of producing color or gray scale pixels on paper, film,display screen, or other output medium.

All patents, patent applications, and published references cited hereinare hereby incorporated by reference in their entirety. It will beappreciated that several of the above-disclosed and other features andfunctions, or alternatives thereof, may be desirably combined into manyother different systems or applications. Various presently unforeseen orunanticipated alternatives, modifications, variations, or improvementstherein may be subsequently made by those skilled in the art which arealso intended to be encompassed by the following claims.

What is claimed:
 1. A method for representing a measurement of an aspectof a physical object as a measurement statement about the physicalobject and including the measurement statement in host electroniccontent, the method comprising: parsing at least the measurementstatement to electronically represent the measurement statement of thephysical object as a measurement statement object including a pluralityof computer-processable data objects comprising: an entity objectrepresenting the physical object; an aspect object representing theaspect of the physical object for which the measurement is made; and avalue object representing a value of the measurement made on the aspectof the physical object; and including the measurement statement for thephysical object as a text entity in the host electronic content,wherein: a human reader of the host electronic content can read the textentity to understand the measurement statement; the measurementstatement is retrievable on command separately from other content in thehost electronic content; the host electronic content is not a compilableprogramming language; and the plurality of computer-processable dataobjects of the measurement statement object electronically representingthe measurement statement facilitate at least one of computation,validation, searching, and reporting relating to the measurement of theaspect of the physical object, and wherein: the physical object has akind and a part; and at least a portion of the measurement statementcorresponding to the entity object is formatted as acomputer-processable structured resource descriptor (SRD) comprising: anentity identifier identifying the physical object; and at least one of:a first operator specifying the kind of the physical object; and asecond operator specifying the part of the physical object, and whereinthe SRD further comprises: a third operator specifying the aspect of thephysical object for which the measurement is made; an aspect identifieridentifying the aspect of the physical object for which the measurementis made; and a value identifier identifying the value of the measurementof the aspect of the physical object, and wherein: the first operatorspecifying the kind of the physical object is a colon “:”; the secondoperator specifying the part of the physical object is a backslash “/”;and the third operator specifying the aspect of the physical object is aperiod “.”, and wherein the SRD further comprises: a kind identifieridentifying the kind of the physical object; and a part identifieridentifying the part of the physical object, such that the SRD has theform: “entity identifier:kind identifier/part identifier.aspectidentifier=value identifier”.